// let obj={
//     a:2938,
//     b:'siduis',
//     item:'name'
// }


// obj=new Proxy(obj,{
//     set(target, p, value, receiver) {
//         console.log('监听到',p,'被修改了,由原来的：',target[p],'改成了：',value);
//         console.log(target);
//         console.log(receiver);
//         target[p]=value
//     },
//     get(target,key){
//         console.log("获取getter属性")
//         return target[key];
//     }
// })

// obj.item = 'newValue';
// console.log(obj)
// console.log(obj.item)

// let target = {};
// let p = new Proxy(target, {});

// p.a = 37;   // 操作转发到目标

// console.log(target.a); 

// const target = {
//     foo: 'bar',
//     baz: 'qux'
//     };
// const handler={
//     get(trapTarget, property, receiver){
//         let decoration = '';
//         if (property === 'foo') {
//             decoration = '!!!';
//         }
//         return Reflect.get(...arguments) + decoration;
//     }
//         // get: Reflect.get
// };

// const proxy=new Proxy(target,handler);

// console.log(proxy.foo)


// const wm = new WeakMap();
// class User {
//     constructor(userId) {
//         wm.set(this, userId);
//     }
//     set id(userId) {
//         wm.set(this, userId);
//     }
//     get id() {
//         return wm.get(this);
//     }
// }

// const UserClassProxy = new Proxy(User, {});
// const proxyUser = new UserClassProxy(456);
// console.log(proxyUser.id);
// console.log(UserClassProxy.id);

const myTarget = {};
const proxy = new Proxy(myTarget, {
    get(target, property, receiver) {
        console.log('get()');
        return Reflect.get(...arguments)
    }
});
// proxy.foo;

